package com.zb.nio;

import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;

/**
 * @author: zhaobin
 * @date: 2024/3/12 22:31
 * @Description:
 */
public class TestByteBufferString {
    public static void main(String[] args) {
        // 方法一：通过字符串的getByte方法获得字节数组，放入缓冲区中
        ByteBuffer buffer1 = ByteBuffer.allocate(16);
        buffer1.put("hello1".getBytes());
        buffer1.flip();
        // 通过StandardCharsets解码，获得CharBuffer
        System.out.println(StandardCharsets.UTF_8.decode(buffer1));

        // 方法二：通过StandardCharsets的encode方法获得ByteBuffer，此时获得的ByteBuffer为读模式，无需通过flip切换模式
        ByteBuffer buffer2 = StandardCharsets.UTF_8.encode("hello2");
        System.out.println(StandardCharsets.UTF_8.decode(buffer2));

        // 方法三：字符串调用getByte()方法获得字节数组，将字节数组传给ByteBuffer的wrap()方法，通过该方法获得ByteBuffer。
        // 同样无需调用flip方法切换为读模式
        ByteBuffer buffer3 = ByteBuffer.wrap("hello3".getBytes());
        System.out.println(StandardCharsets.UTF_8.decode(buffer3));

    }
}
